草庐IT

android - RxJava 和 Retrofit - Rx 的第一步

使用RxJava(没有Retrolambda),我想做一些API调用并用它来完成我的数据。我的不完整对象是带有对象“季节”列表的“TvShow”。这个“季节”是空的,我需要用剧集来完成它。ObservablegetDataTVShow(longidTvShow)//getTvShowwithemptyseasons(exceptseasonnumber)ObservablegetDataSeason(longidTvShow,intseasonNumber);//getonecompleteseasonwithepisodes所以我想:获取我的“TvShow”对象(确定)从我的“TvS

android - RX sub observable - 只执行一次

我一般用Observableobservable=someObservable.replay().refCount();创建一个仅执行一次的可观察对象。如果我像下面这样多次订阅observable,这会很好用:observable.observeOn(Schedulers.io()).subscribeOn(AndroidSchedulers.mainThread()).subscribe(...);observable.observeOn(Schedulers.io()).subscribeOn(AndroidSchedulers.mainThread()).subscribe(..

java - 为 Rx v2 Flowable 编写同步单元测试

我正在将我的项目从Rxv1转换为Rxv2,目前我正在将一些v1Observable更改为v2Flowable.(它在Android项目中,使用Spock在Groovy中编写单元测试)通常我会使用钩子(Hook)覆盖调度程序。我仍然可以通过注册调度程序处理程序在v2中执行此操作。这使得Observable始终使用(新的?)Schedulers.single()同步。但是,由于背压机制(?),Flowable仍然是异步的。我尝试使用以下方法解决该问题:Flowableflowable=Flowable.create(newFlowableOnSubscribe(){@Overridevoi

android - Rx Android 并行组合对同一服务的多个调用

我必须改进一项旧服务,该服务对同一服务进行多次连续调用并将所有结果合并到一个列表中。假设我们有一个IDS=[1,23,..6]的列表,所以我必须使用每个ID调用相同的API(使用改造和Observables)。为此,我想使用RxAndroid,但我对如何合并结果有疑问。Integer[]ids={1,2,3};Observable.from(ids).map(id->mApi.getData(id))我们可以进行并行调用并按照相同的顺序合并结果吗?为了改进时间响应,我的想法是并行执行此操作,但我不知道如何确保结果将按照与服务器调用相同的顺序组合。我想使用concat(http://re

android - Androidx Room rx 问题

我开始使用支持io.reactivex返回类型的最新androidx.room版本。dependencies{defroom_version="2.1.0-alpha02"implementation"androidx.room:room-rxjava2:$room_version"kapt"androidx.room:room-compiler:$room_version"testImplementation"androidx.room:room-testing:$room_version"}简单的dao类@DaointerfaceUserDao:BaseDao{@Insert(on

android - rx android vs mosby 模式加载数据 recyclerview

我正在开发一款Android应用。我附加的代码正在创建一个回收View。我们做的第一件事是创建一个异步任务,它将在SQLite数据库上获取数据并将其加载到适配器->recylcerview中。当后台任务运行时,会向用户显示一个进度对话框。publicclassHomeActivityextendsAppCompatActivity{privateRecyclerViewrecycler;privateRecyclerViewAdapteradapter;privateSwipeRefreshLayoutswipeRefresh;privateprogressDialogprogress

java - 如何调用依赖于 rx 网络调用的非 rx 网络调用

我有一个返回Observable的网络调用,我有另一个网络调用,它不是依赖于第一个Observable的rx,我需要以某种方式转换这一切都与Rx相关。ObservableresponseObservable=apiclient.executeRequest(request);执行后,我需要执行另一个不返回Observable的http调用:responseObservable.map(response->executethenorxnetworkcallusingtheresponse.id)noRxClient.getInformation(response.id,newAction

java - RxJava rx.exceptions.MissingBackpressureException 与过滤器和 map

我刚开始接触RxJava/RxAndroid,但在理解如何正确处理背压方面遇到了一些问题。我有一个可观察到的文件扫描器,它可以扫描目录并发出文件。应尽快处理这些文件,不要跳过任何文件。所以管道看起来像这样:Observable->Filter{checkiffileisoftype.xyz}不幸的是,我收到了rx.exceptions.MissingBackpressureException错误。所以我阅读了有关背压的信息,如果我理解正确的话,无损选项只是缓冲区和窗口。我试过了onBackpressureBuffer(),buffer()andwindow().虽然所有onBackpr

android - 使用 RX 进行调用,然后根据第一次调用的结果进行多个并行调用

我必须调用一个返回项目列表的API。对于此列表中的每一项,我都必须调用另一个API(如果列表返回8个项目,我将不得不进行8次并行调用)。我最终必须返回一个列表,我将使用这8个并行调用中的每一个的结果创建该列表。我如何使用RxJava做到这一点?我认为我必须使用flatMap将第一次调用的结果转换为Observable列表,然后我必须使用zip运算符进行并行调用,但我不确定。请注意,我使用的是RxJava2,并且没有使用lambda表达式。谢谢! 最佳答案 例如,您可以这样做,defer()允许您仅在订阅时获取数据,然后创建Obser

android - Rx Kotlin : map function can't infer return type

在连接到蓝牙设备的应用程序中,我使用RxKotlin使用以下函数:privatefunstartBluetoothPair(device:BluetoothDevice){Observable.just(device).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).map{varuuid:UUID=BLUETOOTH_UUIDvarsocket=it.createRfcommSocketToServiceRecord(uuid)socket.connect()returnsocket}.su